package com.breadenglish.cms.api.app.sys.service;


import com.breadenglish.cms.api.app.domain.db.Code;
import com.breadenglish.cms.api.app.domain.query.CodeQuery;

import java.util.List;

/**
 *  字典管理处理接口
 *  User: guoyao
 *  Date: 2013-12-17
 *  Time: 09:30
 */

public interface CodeService {
    /**
     * 查询字典列表
     * @param code 字典信息
     * @return 字典信息集合
     */
    public List<Code> queryCodes(Code code) throws Throwable;

    /**
     * 查询字典详情
     * @param code 字典信息
     * @return 字典详情
     */
    public CodeQuery queryCode(Code code) throws Throwable;

    /**
     * 查询字典及字典分类信息
     * @param code 字典信息
     * @return 字典信息集合
     */
    public List<CodeQuery> selectCodeAndClass(CodeQuery code) throws Throwable;

    /**
     *  查询字典树
     * @param code 字典信息
     * @return  字典信息结合
     */
    public List<Code> queryCodeTree(Code code) throws Throwable;

    /**
     * 添加新账户
     * @param code 字典信息
     * @return void
     */
    public void insertCode(Code code) throws Throwable;

    /**
     * 根据字典ID更新字典信息
     * @param code 字典信息
     * @return void
     */
    public void updateCode(Code code) throws Throwable;

    /**
     * 根据字典ID删除字典信息
     * @param code 字典ID
     * @return void
     */
    public void deleteCode(Code code, String codeId, String classIds) throws Throwable;

    /**
     * 验证字典唯一性
     * @param classId 分类ID
     * @param codeId 字典ID
     * @return void
     */
    public void uniqueCode(String classId, String codeId) throws Throwable;
}